// https://leetcode.cn/problems/teemo-attacking/

// 题干：提莫在 t 发起攻击意味着艾希在时间区间 [t, t + duration - 1]（含 t 和 t + duration - 1）处于中毒状态。
//       如果提莫在中毒影响结束 前 再次攻击，中毒状态计时器将会 重置 ，
//       在新的攻击之后，中毒影响将会在 duration 秒后结束。

// 示例：输入：timeSeries = [1,4], duration = 2
//       输出：4

// 碎语：本题算法为模拟，没有通用解法，惯用思维是先理解题意
//       再具体问题具体分析

#include <bits/stdc++.h>
using namespace std;

class Solution
{
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration)
    {
        if (timeSeries.size() == 1) return duration; // 特殊情况处理

        int ret = 0;
        for (int i = 0 ; i < timeSeries.size() - 1 ; i++){
            if (timeSeries[i] + duration >= timeSeries[i + 1]) ret += timeSeries[i + 1] - timeSeries[i];
            else ret += duration;
        }
        ret += duration;

        return ret;
    }
};

int main()
{
    Solution sol;
    vector<int> timeSeries = {1,4};

    cout << sol.findPoisonedDuration(timeSeries, 2) << endl;

    return 0;
}